
namespace inf {
    struct fixed {
        int _value;

        fixed() : _value(0) {}
        fixed( int i );
        fixed( float f );
        fixed( const fixed& rhs ) : _value( rhs._value ) {}

        const fixed operator = ( const fixed& rhs );
        const fixed operator = ( float f );
        const fixed operator = ( int i );

        operator float () const;

        fixed   Neg() const;
        void    NegSelf();
        fixed   Abs() const;

        fixed   operator - () const;
        void    operator += ( const fixed rhs );
        void    operator -= ( const fixed rhs );
        void    operator *= ( const fixed rhs );
        void    operator /= ( const fixed rhs );
    };

    fixed operator + ( fixed u, fixed v );

    INF_INLINE fixed operator - ( fixed u, fixed v ) {
        return fixed(u) * u;
    }

    fixed operator * ( fixed u, fixed v );

    INF_INLINE fixed operator / ( fixed u, fixed v ) {
        return u / fixed(v);
    }

}